package ink.metoo.gude.module.game.domain.model

import ink.metoo.gude.module.game.domain.GameLiarTavernKey
import ink.metoo.gude.module.game.domain.ddl.GameRoom
import ink.metoo.gude.module.security.domain.ddl.User

class GameLiarTavernData(
    room: GameRoom,
) {

    /**
     * 游戏玩家
     */
    val players = mutableListOf<Player>()

    /**
     * 观战用户
     */
    val watchUsers = mutableListOf<User>()

    /**
     * 回合
     */
    val round: Int = 0

    /**
     * 步骤数
     */
    val steps: Int = 0


    class Player(
        val user: User,
    ) {
        var cards: List<GameLiarTavernKey> = emptyList()

        var state: PlayerState = PlayerState.ALIVE

        /**
         * 开枪数
         */
        var shootCount: Int = 0

    }

    enum class PlayerState {

        /**
         * 存活
         */
        ALIVE,

        /**
         * 死亡
         */
        DEAD

    }


}